perm filename DICTBT.FAI[MUS,LCS] blob
sn#088111 filedate 1974-02-21 generic text, type T, neo UTF8
00100 TITLE DICTBT
00200 INTERNAL UNPACK,REPACK,D2A,SPEED
00300
00400 ; CALL UNPACK(WORD,N) -- [ARRAY N(3)]
00500 ; CALL REPACK(WORD,N) -- [ARRAY N(3)]
00600 ; PUTS 3 SOUND SAMPLES OF 'WORD' INTO N(1), N(2), N(3).
00700
00800 X ← 2
00900 T ← 3
01000
01100 IDX: XWD 441400,-3
01200
01300 UNPACK: 0
01400 MOVE T,0(16)
01500 HLL T,IDX
01600 MOVE X,1(16)
01700 HRL X,IDX
01800 LOOP1:
01900 ILDB 1,T
02000 LSH 1,=24
02100 ASH 1,-=24
02200 MOVEM 1,(X)
02300 AOBJN X,LOOP1
02400 JRA 16,2(16)
02500 REPACK: 0
02600 MOVE T,0(16)
02700 HRLI T,441400
02800 MOVE X,1(16)
02900 HRL X,IDX
03000 LOOP2:
03100 MOVE 1,(X)
03200 IDPB 1,T
03300 AOBJN X,LOOP2
03400 JRA 16,2(16)
03500
03600 ;*********************************
03700
03800 INTERNAL D2A,SPEED
03900 ; CALL SPEED(SPEED,NCHNS)
04000 ; CALL D2A(NAME(1),SIZE)
04100
04200
04300 DAC←17
04400 D2A: MOVSI 'XGP' ;DOWN TO XGPOK FOR XGP CONFLICT.
04500 DEVUSE 0,
04600 HLRZ 0,0
04700 CAIN 400000
04800 JRST XGPOK
04900 INIT 16,17
05000 SIXBIT .XGP.
05100 0
05200 JRA 16,2(16)
05300 XGPOK: JUMP 0
05400 INIT DAC,17
05500 SIXBIT .AD.
05600 0
05700 JRST .-3
05800 MOVN 0,@1(16)
05900 HRLM 0,OUT
06000 MOVE 0,0(16)
06100 SUBI 0,1
06200 HRRM 0,OUT
06300 OUTPUT DAC,OUT
06400 RELEASE DAC,0
06500 RELEASE 16,
06600 JRA 16,2(16)
06700 OUT: 0
06800 3650 ;CONO 204,3650
06900 4030 ; " 424,4010
07000 0
07100 0
07200 SPEED: 0
07300 MOVE @(16)
07400 DPB [POINT 3,OUT+2,32]
07500 MOVE @1(16)
07600 SUBI 1
07700 DPB [POINT 2,OUT+2,26]
07800 JRA 16,2(16)
07900 END